package linkList;

import java.util.HashMap;

import utils.linkListUtil.ListNode;

public class removeNthFromEnd {
    // 要实现一趟扫描，肯定得空间换时间，这里遍历的时候使用hashmap存储
    // 法一：hashmap  on on
    public ListNode removeNthFromEnd(ListNode head, int n) {
        HashMap<Integer,ListNode> map = new HashMap<>();
        int count=0;
        ListNode node =head;
        while (node!=null) {
            
            count++;
            map.put(count, node);
            node=node.next;
        }
        if (count==n) {
            // 删掉第一个元素，没有pre
            head=head.next;
            return head;
        }
        ListNode pre = map.get(count-n);
        pre.next=pre.next.next;
        return head;
    }
    public static void main(String[] args) {
        
    }
}
